<?php
    class CasesModel extends CI_Model{
        
        public function cadastrarCase($dados){
            $this->db->insert('cases',$dados);
            return $this->db->insert_id();
        }
        
        public function converteNomeParaId($nome){
            $this->db->where('nome_membro', $nome);
            $result = $this->db->get('membro')->row();
            return $result->id;
        }
        
        public function cadastrarMembrosCase($membros, $id){
            foreach ($membros as $membro){
                $this->db->set('membro_id', $membro);
                $this->db->set('case_id', $id);
                $this->db->insert('cases_x_membro');
            }
            return true;
        }
        
        public function editarCase($dados){
            $this->db->where('id', $dados['id']);
            return $this->db->update('cases', $dados);
        }
        
        public function excluirCase($id){
            $this->db->where('id', $id);
            return $this->db->delete('cases');
        }
        
        public function getCases(){
            return $this->db->get('cases')->result();
        }
        
        public function getCase($id){
            $this->db->where('id', $id);
            return $this->db->get('cases')->row();
        }
        
        public function dropCases(){
            $this->db->select('cases.id, cases.case');
            $this->db->order_by('case');
            $values = $this->db->get('cases')->result_array();
            
            $options = array();
            $options[''] = '- Selecione -';
            foreach($values as $value){
                $options[$value['id']] = $value['case'];
            }
            return $options;
        }
        
        // --------------------------------------------------------------
        
        public function getMembrosCase($id){
            $this->db->join('membro','cases_x_membro.membro_id = membro.id');
            $this->db->where('case_id', $id);
            return $this->db->get('cases_x_membro')->result();
        }
        
        public function adicionarMembroCase($dados){
            return $this->db->insert('cases_x_membro', $dados);
        }
        
        public function excluirMembroCase($membro, $case){
            $this->db->where('membro_id', $membro);
            $this->db->where('case_id', $case);
            return $this->db->delete('cases_x_membro');
        }
        
        public function dropMembrosForaCase($id){
            $this->db->join('cases_x_membro','membro.id = cases_x_membro.membro_id', 'left');
            $this->db->where('membro_id',NULL);
            $this->db->select('membro.id, nome_membro');
            $this->db->order_by('nome_membro');
            $values = $this->db->get('membro')->result_array();
            
            $options = array();
            $options[''] = '- Selecione -';
            foreach($values as $value){
                $options[$value['id']] = $value['nome_membro'];
            }
            return $options;
        }
        
        public function dropEstadosCase(){
            $this->db->select('id, estado_case');
            $values = $this->db->get('estado_case')->result_array();
            
            $options = array();
            $options[''] = '- Selecione -';
            foreach($values as $value){
                $options[$value['id']] = $value['estado_case'];
            }
            return $options;
        }
        
        // ---- FUNCOES COM ESTADO DE CASE -----------------------------
        
        public function cadastrarEstadoCase($dados){
            return $this->db->insert('estado_case',$dados);
        }
        
        public function editarEstadoCase($dados){
            $this->db->where('id', $dados['id']);
            return $this->db->update('estado_case',$dados);
        }
        
        public function excluirEstadoCase($id){
            $this->db->where('id', $id);
            return $this->db->delete('estado_case');
        }
        
        public function getEstadosCase(){
            return $this->db->get('estado_case')->result();
        }
        
        public function getEstadoCase($id){
            $this->db->where('id',$id);
            return $this->db->get('estado_case')->row();
        }
        
    }
?>
